from manim import *
class Tem(Scene):
    def construct(self):
        # 爱
        # 透明度默认是0，如果我们不进行设置的话
        s=Square(color=RED,fill_opacity=0.5)
        # move_to表示对于这个进行移动
        c1=Circle(color=RED,fill_opacity=0.5).move_to(s.get_top())
        # copy表示第二个圆形复制上面的这个圆形的所有的属性，但是对于这个位置进行调整
        c2=c1.copy().move_to(s.get_right())
        # 这个表示把上面创建的对象添加到一个组里面去
        group1=VGroup(s,c1,c2).rotate(45*DEGREES)
        self.play(Create(group1))
        self.wait()
        # animate表示把这个向左边移动的动作转换为动画，1表示移动之后距离左边的这个边缘的距离是1
        self.play(group1.animate.to_edge(LEFT,buff=1))
        self.wait()

        #死
        # 下面的这个可以理解为是一个平躺的矩形逆时针旋转45度，这个高度和宽度的比例大概就是4:5的感觉
        r1=Rectangle(color=RED,height=4,width=4/5,fill_opacity=0.5).rotate(45*DEGREES)
        # 下面的这个第二个矩形可以理解为是r1顺时针或者是逆时针旋转90度之后得到的
        r2=r1.copy().rotate(90*DEGREES)
        group2=VGroup(r1,r2)
        self.play(Create(group2))
        self.wait()

        #机器人
        sbig=Square(color=RED,fill_opacity=0.5,side_length=(4+4/5)/(2**0.5))
        csmall1=Circle(fill_color=BLACK,stroke_color=RED,fill_opacity=0.5,radius=0.5).move_to(LEFT*0.7+UP*0.5)
        csmall2=csmall1.copy().move_to(RIGHT*0.7+UP*0.5)
        group3=VGroup(sbig,csmall1,csmall2).to_edge(RIGHT,buff=1)
        self.play(Create(group3))
        self.wait()

        biggroup=VGroup(group1,group2,group3)
        #设置最后的这个不透明度
        self.play(biggroup.animate.set_opacity(1))
        self.wait(3)